home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 25 / Cream of the Crop 25.iso / doom / axxwar_1.zip / SOURCES / RANDITEM.QC < prev    next >
Text File  |  1997-02-27  |  2KB  |  85 lines

  1. // AxxWars 0.8
  2.  
  3. void() NormalRegen;                    // AXXRI
  4.  
  5. float(entity e) CheckEntity =
  6. {
  7.     if (e.classname == "weapon_nailgun")
  8.         return TRUE;
  9.     else if (e.classname == "weapon_supernailgun")
  10.         return TRUE;
  11.     else if (e.classname == "weapon_supershotgun")
  12.         return TRUE;
  13.     else if (e.classname == "weapon_rocketlauncher")
  14.         return TRUE;
  15.     else if (e.classname == "weapon_grenadelauncher")
  16.         return TRUE;
  17.     else if (e.classname == "weapon_lightning")
  18.         return TRUE;
  19.     else if (e.classname == "item_cells")
  20.         return TRUE;
  21.     else if (e.classname == "item_spikes")
  22.         return TRUE;
  23.     else if (e.classname == "item_shells")
  24.         return TRUE;
  25.     else if (e.classname == "item_rockets")
  26.         return TRUE;
  27.     else if (e.classname == "item_health")
  28.         return TRUE;
  29.     else if (e.classname == "item_artifact_invulnerability")
  30.         return TRUE;
  31.     else if (e.classname == "item_artifact_invisibility")
  32.         return TRUE;
  33.     else if (e.classname == "item_artifact_envirosuit")
  34.         return TRUE;
  35.     else if (e.classname == "item_artifact_super_damage")
  36.         return TRUE;
  37.     else if (e.classname == "item_armor1")
  38.         return TRUE;
  39.     else if (e.classname == "item_armor2")
  40.         return TRUE;
  41.     else if (e.classname == "item_armor3")
  42.         return TRUE;
  43.  
  44.     return FALSE;
  45. };
  46.  
  47. void() SUB_regen =
  48. {    
  49.     if (RandomItems != 1)
  50.         {    NormalRegen();
  51.             return;     }
  52.     local vector vTemp;
  53.     local float fItemCount;
  54.     local entity eTemp;
  55.  
  56.     self.model = self.mdl;        // restore original model
  57.     self.solid = SOLID_TRIGGER;    // allow it to be touched again
  58.     sound (self, CHAN_VOICE, "items/itembk2.wav", 1, ATTN_NORM);    // play respawn sound
  59.  
  60.     fItemCount=random()*20;
  61.  
  62.     eTemp=findradius(self.origin,10000);
  63.  
  64.     while (fItemCount>0)
  65.         {
  66.         eTemp=eTemp.chain;
  67.         fItemCount=fItemCount - 1;
  68.         if (!eTemp.chain)
  69.             {
  70.             setorigin (self,self.origin);
  71.             return;
  72.             }
  73.         }
  74.  
  75.     while (CheckEntity(eTemp)!=TRUE)
  76.         eTemp=eTemp.chain;
  77.  
  78.     vTemp=eTemp.origin;
  79.  
  80.     setorigin (eTemp,self.origin);
  81.     
  82.     setorigin (self, vTemp);
  83. };
  84.  
  85.